I3DShPrimitive Struct Reference
[Shell Interfaces]

Inheritance diagram for I3DShPrimitive:

IMCUnknown List of all members.

Public Member Functions

virtual boolean MCCOMAPI IsPatchBased ()=0
virtual MCCOMErr MCCOMAPI EnumPatches (EnumPatchesCallback callback, void *privData, boolean &closed)=0
virtual MCCOMErr MCCOMAPI ChangedData ()=0
virtual MCCOMErr MCCOMAPI GetFMesh (real lod, FacetMesh **mesh)=0
virtual void MCCOMAPI GetRenderingFacetMesh (FacetMesh **mesh)=0
virtual void MCCOMAPI GetRenderingMesh (MeshDataStructure::TMeshList **meshList)=0
virtual boolean MCCOMAPI IsVolumic ()=0
virtual void MCCOMAPI BeginUV2XYZ ()=0
virtual boolean MCCOMAPI UV2XYZ (const TVector2 &uv, uint32 uvSpaceID, TVector3 &thePos3D, TVector3 *normal)=0
virtual void MCCOMAPI EndUV2XYZ ()=0
virtual I3DShObject *MCCOMAPI GetI3DShObject ()=0
virtual int16 MCCOMAPI GetNbrLOD () const =0
virtual real MCCOMAPI GetLOD (int16 index) const =0
virtual void MCCOMAPI SetChildPrimitive (I3DShPrimitive *primitive)=0
virtual I3DShPrimitive *MCCOMAPI GetChildPrimitive ()=0
virtual boolean MCCOMAPI GetRayHit (RayHitParameters &params)=0

Detailed Description

A Primitive is a geometric Object that can be instantiated multiple time in a scene.

Most primitives created in Carrara are external primitives (see I3DShExternalPrimitive for a more information on external primitives).

A primitive always supports the following interfaces: I3DShObject, I3DShMaster.


Member Function Documentation

virtual void MCCOMAPI I3DShPrimitive::BeginUV2XYZ (   )  [pure virtual]
 

Call this function before UV2XYZ().

virtual MCCOMErr MCCOMAPI I3DShPrimitive::ChangedData (   )  [pure virtual]
 

Call this if you changed some data of the Primitive, so the Shell hear about it

virtual void MCCOMAPI I3DShPrimitive::EndUV2XYZ (   )  [pure virtual]
 

Call this function after UV2XYZ() to delete caches.

virtual MCCOMErr MCCOMAPI I3DShPrimitive::EnumPatches (  EnumPatchesCallback  callback,
void *  privData,
boolean &  closed
)  [pure virtual]
 

Enumerates the list of patches that compose the primitive.

Parameters:
callback A callback function.
privData Data that are passed to the callback
closed True if the primitive is closed (used for backface culling).

virtual I3DShPrimitive* MCCOMAPI I3DShPrimitive::GetChildPrimitive (   )  [pure virtual]
 

Returns a pointer to the child primitive of this primitive. Returns NULL if there is no child primitive.

virtual MCCOMErr MCCOMAPI I3DShPrimitive::GetFMesh (  real  lod,
FacetMesh **  mesh
)  [pure virtual]
 

Returns the facet mesh for a given level of detail. (This is the quality that is used for the 3D view. To get the full detail mesh, call GetRenderingFacetMesh()).

Parameters:
lod The level of detail (0 is the most precise)
mesh A pointer to the facetmesh.

virtual I3DShObject* MCCOMAPI I3DShPrimitive::GetI3DShObject (   )  [pure virtual]
 

Returns a pointer to I3DShObject. (This methid is faster than calling QueryInterface).

virtual real MCCOMAPI I3DShPrimitive::GetLOD (  int16  index  )  const [pure virtual]
 

Returns the precision for a given Level of Detail.

Parameters:
index The index of the LOD.

virtual int16 MCCOMAPI I3DShPrimitive::GetNbrLOD (   )  const [pure virtual]
 

Returns the number of LOD (level of details) that are supported by this primitive.

virtual boolean MCCOMAPI I3DShPrimitive::GetRayHit (  RayHitParameters &  params  )  [pure virtual]
 

Calculates the intersection of a ray and this primitive

virtual void MCCOMAPI I3DShPrimitive::GetRenderingFacetMesh (  FacetMesh **  mesh  )  [pure virtual]
 

Returns the facet mesh associated with the primitive that should be used for the final rendering.

Parameters:
mesh A pointer to the facetmesh

virtual void MCCOMAPI I3DShPrimitive::GetRenderingMesh (  MeshDataStructure::TMeshList **  meshList  )  [pure virtual]
 

Returns a pointer to the rendering mesh associated with the primitive. Note that the mesh should not be cached by the primitive so it can be modified by the caller.

It is the caller responsability to call release on the mesh once it is not used anymore.

Parameters:
meshList The mesh list that is returned. NULL if this call is not supported (in which case the caller can use the facet mesh)

virtual boolean MCCOMAPI I3DShPrimitive::IsPatchBased (   )  [pure virtual]
 

Returns true if the primitive is composed of Beziers patches.

virtual boolean MCCOMAPI I3DShPrimitive::IsVolumic (   )  [pure virtual]
 

Returns true if the primitive is a volumic primitive (see IVolumePrimitive).

virtual void MCCOMAPI I3DShPrimitive::SetChildPrimitive (  I3DShPrimitive *  primitive  )  [pure virtual]
 

Sets a child primitive for this primitive

Parameters:
primitive A pointer to the child primitive

virtual boolean MCCOMAPI I3DShPrimitive::UV2XYZ (  const TVector2 &  uv,
uint32  uvSpaceID,
TVector3 &  thePos3D,
TVector3 *  normal
)  [pure virtual]
 

Returns the 3D position of a point given it's uv coordinates. Note that if the uv coordinates are degenerated, there might be several points on the mesh that could be returned...

Parameters:
uv The texture coordinates
uvSpaceID The ID of the uvspace
thePos3D The returned position in local coordinates.
normal The normal at that point.


The documentation for this struct was generated from the following file:
Generated on Wed Dec 7 14:27:34 2005 for Carrara SDK Doc by  doxygen 1.4.5